Skip to content

build: downgrade multiarch to Ubuntu 20.04 and consolidate images#12830

Open
kannanjgithub wants to merge 1 commit into
grpc:masterfrom
kannanjgithub:ubuntu-glibc
Open

build: downgrade multiarch to Ubuntu 20.04 and consolidate images#12830
kannanjgithub wants to merge 1 commit into
grpc:masterfrom
kannanjgithub:ubuntu-glibc

Conversation

@kannanjgithub
Copy link
Copy Markdown
Contributor

@kannanjgithub kannanjgithub commented May 27, 2026

Downgrades the multiarch build environment from Ubuntu 24.04 to 20.04. This ensures that native artifacts for aarch64 and ppc64le are linked against glibc 2.31, providing better compatibility with older but still-supported distributions (like RHEL 8 and Ubuntu 20.04).

Additionally, this consolidates s390x cross-compilation into the multiarch image, removing the need for a separate ubuntu2004 base image.

  • Update Dockerfile.multiarch.base to use ubuntu:20.04

  • Add g++-s390x-linux-gnu to multiarch image

  • Update linux_artifacts.sh to use multiarch for all cross-builds

  • Remove references to Dockerfile.ubuntu2004.base in build scripts

    Summary of what this commit achieves:

    1. Improves Compatibility: Lowering the glibc requirement from 2.39 (Ubuntu 24.04) to 2.31 (Ubuntu 20.04) prevents "version `GLIBC_2.XX' not found" errors when users try to run the artifacts on older systems.
    2. Simplifies CI: Merges the s390x toolchain into the multiarch image, reducing the number of Docker images the project needs to build and maintain.
    3. Implements stopgap: Directly implements the choice of Ubuntu 20.04 suggested as a safer stopgap for the build.

Fixes #12797.

Downgrades the multiarch build environment from Ubuntu 24.04 to 20.04.
This ensures that native artifacts for aarch64 and ppc64le are linked
against glibc 2.31, providing better compatibility with older but
still-supported distributions (like RHEL 8 and Ubuntu 20.04).

Additionally, this consolidates s390x cross-compilation into the
multiarch image, removing the need for a separate ubuntu2004 base
image.

- Update Dockerfile.multiarch.base to use ubuntu:20.04
- Add g++-s390x-linux-gnu to multiarch image
- Update linux_artifacts.sh to use multiarch for all cross-builds
- Remove references to Dockerfile.ubuntu2004.base in build scripts

  Summary of what this commit achieves:
   1. Improves Compatibility: Lowering the glibc requirement from 2.39 (Ubuntu 24.04) to 2.31 (Ubuntu 20.04) prevents "version `GLIBC_2.XX' not found" errors when users try to run the artifacts on older
      systems.
   2. Simplifies CI: Merges the s390x toolchain into the multiarch image, reducing the number of Docker images the project needs to build and maintain.
   3. Addresses Reviewer Feedback: Directly implements the "choice" of Ubuntu 20.04 suggested by the reviewer as a safer stopgap for the build.

Fixes grpc#12797.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Fix linux_artifacts cross-compilation to use older glibc version

2 participants